home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / AGNUS / SRC / SYSINFO / XHDI.H < prev   
Encoding:
C/C++ Source or Header  |  1996-07-08  |  2.8 KB  |  120 lines

  1. /*
  2.     @(#)XHDI/xhdi.h
  3.     
  4.     Julian F. Reschke, 15. Mai 1993
  5.     
  6.      Bindings for the XHDI functions
  7.     --- NOT FULLY TESTED, USE AT YOUR OWN RISK ---
  8.  
  9.     Important:
  10.     
  11.     Do calls only if XHGetVersion() was successful
  12. */
  13.  
  14. #ifndef __XHDI__
  15. #define __XHDI__
  16.  
  17. #ifdef __GNUC__
  18. # include <ostruct.h>
  19. # include <osbind.h>
  20. # define BPB _BPB
  21. # define cdecl
  22. #else
  23. # include <tos.h>
  24. #endif
  25.  
  26.  
  27. #ifndef UWORD
  28. #define UWORD unsigned int
  29. #endif
  30.  
  31. #ifndef LONG
  32. #define LONG long
  33. #endif
  34.  
  35. #ifndef ULONG
  36. #define ULONG unsigned long
  37. #endif
  38.  
  39. #define XH_TARGET_STOPPABLE 0x00000001L
  40. #define XH_TARGET_REMOVABLE 0x00000002L
  41. #define XH_TARGET_LOCKABLE  0x00000004L
  42. #define XH_TARGET_EJECTABLE 0x00000008L
  43. #define XH_TARGET_RESERVED  0x80000000L
  44.  
  45.  
  46. /* Inquire protocol version number */
  47. UWORD
  48. XHGetVersion (void);
  49.  
  50. /* Inquire informations about one target */
  51. LONG
  52. XHInqTarget (UWORD major, UWORD minor, ULONG *block_size,
  53.              ULONG *device_flags, char *product_name);
  54.  
  55. /* Reserve or release a target */
  56. LONG
  57. XHReserve (UWORD major, UWORD minor, UWORD do_reserve, UWORD key);
  58.  
  59. /* Lock or unlock a target with removable media */
  60. LONG
  61. XHLock (UWORD major, UWORD minor, UWORD do_lock, UWORD key);
  62.  
  63. /* Stop or start target */
  64. LONG
  65. XHStop (UWORD major, UWORD minor, UWORD do_stop, UWORD key);
  66.  
  67. /* Eject medium */
  68. LONG
  69. XHEject (UWORD major, UWORD minor, UWORD do_eject, UWORD key);
  70.  
  71. /* Get bit mask of available XHDI devices */
  72. ULONG
  73. XHDrvMap (void);
  74.  
  75. /* Get major device number (eg. target), minor device number (eg.
  76.    LUN), starting sector and BPB */
  77. LONG
  78. XHInqDev (UWORD bios_device, UWORD *major, UWORD *minor,
  79.           ULONG *start_sector, BPB *bpb);
  80.  
  81. /* Get informations about the driver */
  82. LONG
  83. XHInqDriver (UWORD bios_device, char *name, char *version,
  84.              char *company, UWORD *ahdi_version,
  85.              UWORD *maxIPL);
  86.  
  87. /* Install additional XHDI handler */
  88. LONG
  89. XHNewCookie (void *newcookie);
  90.  
  91. /* Do a physical access */
  92. LONG
  93. XHReadWrite (UWORD major, UWORD minor, UWORD rwflag,
  94.              ULONG recno, UWORD count, void *buf);
  95.  
  96. /* Make printable device name */
  97. void
  98. XHMakeName (UWORD major, UWORD minor, ULONG start_sector, char *name);
  99.  
  100. /* New version of XHInqTarget */
  101. LONG
  102. XHInqTarget2 (UWORD major, UWORD minor, ULONG *block_size,
  103.               ULONG *device_flags, char *product_name,
  104.               UWORD stringlen);
  105.               
  106. /* New version of XHInqDev */
  107. LONG
  108. XHInqDev2 (UWORD bios_device, UWORD *major, UWORD *minor,
  109.            ULONG *start_sector, BPB *bpb, ULONG *blocks, char *partid);
  110.  
  111. /* Special opcode for custom driver extensions */
  112. LONG
  113. XHDriverSpecial (ULONG key1, ULONG key2, UWORD subopcode, void *data);
  114.  
  115. /* Inquire drive capacity */
  116. LONG
  117. XHGetCapacity (UWORD major, UWORD minor, ULONG *blocks, ULONG *bs);
  118.  
  119. #endif
  120.